package com.dingding.special.user.userinfo.service;

import com.dingding.common.core.base.dto.ResponseEntity;
import com.dingding.special.user.userinfo.dto.ReqGetTokenByRongCloud;
import com.dingding.special.user.userinfo.dto.ReqGetUserInfoDTO;
import com.dingding.special.user.userinfo.dto.ReqUpdateUserAvatarDTO;
import com.dingding.special.user.userinfo.dto.ReqUpdateUserInfoDTO;
import com.dingding.special.user.userinfo.dto.ReqUserDatumDTO;
import com.dingding.special.user.userinfo.dto.ResGetTokenByRongCloud;
import com.dingding.special.user.userinfo.dto.ResGetUserInfoDTO;
import com.dingding.special.user.userinfo.dto.ResUpdateUserAvatarDTO;
import com.dingding.special.user.userinfo.dto.ResUpdateUserInfoDTO;
import com.dingding.special.user.userinfo.dto.ResUserDatumDTO;

/**
 * 
 * @ClassName: ISpecialUserInfoService 
 * @Description: 获取用户信息(融云使用)
 * @author YHQ
 * @date 2016年8月23日 下午5:00:24
 * @since V2.4.0
 * 
 */
public interface ISpecialUserInfoService {

	/**
	 * 
	 * @Title: getTokenByRongCloud 
	 * @Description: 获取Token
	 * @param reqGetTokenByRongCloud 获取Token客户端请求Bean
	 * @author YHQ 
	 * @since V2.4.0
	 * @return ResponseEntity<ResGetTokenByRongCloud>    返回类型
	 * 
	 */
	public ResponseEntity<ResGetTokenByRongCloud> getTokenByRongCloud(ReqGetTokenByRongCloud reqGetTokenByRongCloud);

	/**
	 * 
	 * @Title: getUserInfos 
	 * @Description: 获取IM聊天需要的用户信息
	 * @param  reqGetUserInfoDTO 
	 * @author YHQ 
	 * @since V2.4.0 
	 * @return ResponseEntity<ResGetUserInfoDTO>    返回类型
	 * 
	 */
	public ResponseEntity<ResGetUserInfoDTO> getRongCloudInfo(ReqGetUserInfoDTO reqGetUserInfoDTO);

	/**
	 * 
	 * @Title: updateUserInfo 
	 * @Description: 修改用户信息 
	 * @param reqUpdateUserInfoDTO 修改用户信息请求Bean
	 * @author YHQ 
	 * @since V2.4.0 
	 * @return ResponseEntity<ResUpdateUserInfoDTO>    返回类型
	 * 
	 */
	public ResponseEntity<ResUpdateUserInfoDTO> updateUserInfo(ReqUpdateUserInfoDTO reqUpdateUserInfoDTO);

	/**
	 * 
	 * 修改用户头像
	 * 
	 * @Title: updateUserAvatar 
	 * @author CHEHAUNBO
	 * @since V2.4.0
	 * 
	 */
	public ResponseEntity<ResUpdateUserAvatarDTO> updateUserAvatar(ReqUpdateUserAvatarDTO reqUpdateUserAvatarDTO);

	/**
	 * 
	 * @Title: getUserDatum 
	 * @Description: 获取用户资料
	 * @param reqUserDatumDTO 获取用户资料客户端请求Bean
	 * @author YHQ 
	 * @since V2.4.0
	 * @return ResponseEntity<ResUserDatumDTO>    返回类型
	 * 
	 */
	public ResponseEntity<ResUserDatumDTO> getUserDatum(ReqUserDatumDTO reqUserDatumDTO);

}
